﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Telerik.WinControls.UI;
using System.Data.SqlServerCe;
using System.Data.SqlClient;
using System.IO;
using System.Configuration;

namespace CRM_WF
{
    public partial class CRM : Form
    {
        WebServices  ServiceWeb;
        Notation notation;

        int CurrentEleveID;
        int CurrentFormateurID;
        int CurrentUserID;

        #region prog 
        public CRM(int type_Utilisateur)
        {
            ServiceWeb = new WebServices();
            notation = new Notation();

            InitializeComponent();

            GestionAdministration.Visible = false;
            GestionAgence.Visible = false;
            GestionMoniteur.Visible = false;

            CurrentEleveID = 0; CurrentFormateurID = 0; CurrentUserID = 0;

            switch (type_Utilisateur)
            {
                case 4:  //Type superAdmin
                    MainTabAdministration.Enabled = true;
                    MainTabAgence.Enabled = true;
                    MainTabMoniteur.Enabled = true;
                    MainTabAdministration_Click(null, null);
                    break;
                case 2:  //Type Administration
                    MainTabAdministration.Enabled = true;
                    MainTabAgence.Enabled = false;
                    MainTabMoniteur.Enabled = false;
                    MainTabAdministration_Click(null, null);
                    break;
                case 3: // Type Agence
                    MainTabAdministration.Enabled = false;
                    MainTabAgence.Enabled = true;
                    MainTabMoniteur.Enabled = false;
                    MainTabAgence_Click(null, null);
                    break;
                case 1: //Type Moniteur                   
                    MainTabAdministration.Enabled = false;
                    MainTabAgence.Enabled = false;
                    MainTabMoniteur.Enabled = true;
                    MainTabMoniteur_Click(null, null);
                    break;
                default ://Default
                    MainTabAdministration.Enabled = false;
                    MainTabAgence.Enabled = false;
                    MainTabMoniteur.Enabled = false;
                    break;
            }
        }

        /**************************************************************************************************
         *   Commentaire : Florian Cavallo
         *   Groupe de methodes : Onglets de type d'utilisateur
         **************************************************************************************************/

        private void MainTabAdministration_Click(object sender, EventArgs e)
        {
            GestionAgence.Visible = false;
            GestionMoniteur.Visible = false;
            GestionAdministration.Visible = true;
            TabCategorieGestion_Click(null,null); //Catégorie par défaut
        }

        private void MainTabMoniteur_Click(object sender, EventArgs e)
        {
            GestionAgence.Visible = false;
            GestionMoniteur.Visible = true;
            GestionAdministration.Visible = false;
            GroupBoxNotationContenu_Click(null, null);
        }

        private void MainTabAgence_Click(object sender, EventArgs e)
        {
            GestionAgence.Visible = true;
            GestionMoniteur.Visible = false;
            GestionAdministration.Visible = false;
            TabCategorieEleves_Click(null, null); //Catégorie par défaut
        }

        /**************************************************************************************************
       *   Commentaire : Florian Cavallo
       *   Groupe de methodes : Categorie (Contenu dans le ribbon bar)
       *   Utilisateur : Administration
       **************************************************************************************************/

        private void TabCategorieGestion_Click(object sender, EventArgs e)
        {
            //Gestion du splitPanel 1 (Le menu de la gauche)

            GroupBoxDisponibilitee.Visible = true;
            GroupBoxPlanning.Visible = false;
            GroupBoxRequete.Visible = false;
            GroupBoxSession.Visible = false;

            //Gestion du splitPanel 2 (le contenu)
            MenuGererDispoFormateurs_MouseClick(null,null);
        }

        private void TabCategorieSessions_Click(object sender, EventArgs e)
        {
            //Gestion du splitPanel 1 (Le menu de la gauche)

            GroupBoxDisponibilitee.Visible = false;
            GroupBoxPlanning.Visible = false;
            GroupBoxRequete.Visible = false;
            GroupBoxSession.Visible = true;

            //Gestion du splitPanel 2 (le contenu)
            MenuGererSession_Consulter_MouseClick(null,null);
        }

        private void TabCaterogiePlanning_Click(object sender, EventArgs e)
        {
            //Gestion du splitPanel 1 (Le menu de la gauche)

            GroupBoxDisponibilitee.Visible = false;
            GroupBoxPlanning.Visible = true;
            GroupBoxRequete.Visible = false;
            GroupBoxSession.Visible = false;

            //Gestion du splitPanel 2 (le contenu)
            MenuGererPlanning_Consulter_MouseClick(null, null);
        }

        private void TabCategorieRequetes_Click(object sender, EventArgs e)
        {
            //Gestion du splitPanel 1 (Le menu de la gauche)

            GroupBoxDisponibilitee.Visible = false;
            GroupBoxPlanning.Visible = false;
            GroupBoxRequete.Visible = true;
            GroupBoxSession.Visible = false;

            //Gestion du splitPanel 2 (le contenu)
            MenuConsulterRequeteResume_MouseClick(null, null);
        }

        /**************************************************************************************************
         *   Commentaire : Florian Cavallo
         *   Groupe de methodes : Gestion des Sous-Menus
         **************************************************************************************************/

        private void MenuRequete_SelectedPageChanged(object sender, EventArgs e)
        {
            switch (this.MenuRequete.Pages.IndexOf(this.MenuRequete.SelectedPage))
            {
                case 0: MenuConsulterRequeteEleve_MouseClick(null, null);
                    break;

                case 1: MenuConsulterRequeteFormateur_MouseClick(null, null);
                    break;

                case 2: MenuConsulterRequeteResume_MouseClick(null, null);
                    break;
            }
        }

        private void MenuSession_SelectedPageChanged(object sender, EventArgs e)
        {
            switch (this.MenuSession.Pages.IndexOf(this.MenuSession.SelectedPage))
            {
                case 0: MenuGererSession_Consulter_MouseClick(null,null);
                    break;

                case 1: MenuGererSession_Ajouter_MouseClick(null,null);
                    break;

                case 2: MenuGererSession_Modifier_MouseClick(null, null);
                    break;
            }
        }

        private void MenuAdministration_SelectedPageChanged(object sender, EventArgs e)
        {
            switch (this.MenuAdministration.Pages.IndexOf(this.MenuAdministration.SelectedPage))
            {
                case 0: MenuGererPlanning_Consulter_MouseClick(null, null);
                    break;

                case 1: MenuGererPlanning_Ajouter_MouseClick(null, null);
                    break;

                case 2: MenuGererPlanning_Modifier_MouseClick(null, null);
                    break;
            }
        }

        private void MenuDisponibilite_SelectedPageChanged(object sender, EventArgs e)
        {
            switch (this.MenuDisponibilite.Pages.IndexOf(this.MenuDisponibilite.SelectedPage))
            {
                case 0: MenuGererDispoFormateurs_MouseClick(null, null);
                    break;

                case 1:MenuGererDispoIntervenants_MouseClick(null,null);
                    break;

                case 2: MenuGererDispoVehicules_MouseClick(null, null);
                    break;

                case 3: MenuGererDispoLieux_MouseClick(null, null);
                    break;
            }
        }

        /**************************************************************************************************
         *   Commentaire : Florian Cavallo
         *   Groupe de methodes : Sous-Menus (Menu de gauche)
         *   Utilisateur : Administration
         *   Catégorie : Gestion disponibilités
         **************************************************************************************************/

        private void MenuGererDispoFormateurs_MouseClick(object sender, MouseEventArgs e)
        {
            //On cache tout les types de contenu sauf celui qui nous interesse
            GroupBoxDispoContenu.Visible = true;
            GroupBoxSessionContenu.Visible = false;
            GroupBoxPlanningContenu.Visible = false;
            GroupBoxRequeteContenu.Visible = false;

            //Et on affiche le contenu souhaité
            GroupBoxDispoFormateurs.Visible = true;
            GroupBoxDispoIntervenants.Visible = false;
            GroupBoxDispoLieux.Visible = false;
            GroupBoxDispoVehicules.Visible = false;
                     

        }

        private void MenuGererDispoIntervenants_MouseClick(object sender, MouseEventArgs e)
        {
            //On cache tout les types de contenu sauf celui qui nous interesse
            GroupBoxDispoContenu.Visible = true;
            GroupBoxSessionContenu.Visible = false;
            GroupBoxPlanningContenu.Visible = false;
            GroupBoxRequeteContenu.Visible = false;

            //Et on affiche le contenu souhaité
            GroupBoxDispoFormateurs.Visible = false;
            GroupBoxDispoIntervenants.Visible = true;
            GroupBoxDispoLieux.Visible = false;
            GroupBoxDispoVehicules.Visible = false;
        }

        private void MenuGererDispoLieux_MouseClick(object sender, MouseEventArgs e)
        {
            //On cache tout les types de contenu sauf celui qui nous interesse
            GroupBoxDispoContenu.Visible = true;
            GroupBoxSessionContenu.Visible = false;
            GroupBoxPlanningContenu.Visible = false;
            GroupBoxRequeteContenu.Visible = false;

            //Et on affiche le contenu souhaité
            GroupBoxDispoFormateurs.Visible = false;
            GroupBoxDispoIntervenants.Visible = false;
            GroupBoxDispoLieux.Visible = true;
            GroupBoxDispoVehicules.Visible = false;
        }

        private void MenuGererDispoVehicules_MouseClick(object sender, MouseEventArgs e)
        {
            //On cache tout les types de contenu sauf celui qui nous interesse
            GroupBoxDispoContenu.Visible = true;
            GroupBoxSessionContenu.Visible = false;
            GroupBoxPlanningContenu.Visible = false;
            GroupBoxRequeteContenu.Visible = false;

            //Et on affiche le contenu souhaité
            GroupBoxDispoFormateurs.Visible = false;
            GroupBoxDispoIntervenants.Visible = false;
            GroupBoxDispoLieux.Visible = false;
            GroupBoxDispoVehicules.Visible = true;
        }

        /**************************************************************************************************
      *   Commentaire : Florian Cavallo
      *   Groupe de methodes : Sous-Menus (Menu de gauche)
      *   Utilisateur : Administration
      *   Catégorie : Gestion de Sessions
      **************************************************************************************************/

        private void MenuGererSession_Consulter_MouseClick(object sender, MouseEventArgs e)
        {
            //On cache tout les types de contenu sauf celui qui nous interesse
            GroupBoxDispoContenu.Visible = false;
            GroupBoxSessionContenu.Visible = true;
            GroupBoxPlanningContenu.Visible = false;
            GroupBoxRequeteContenu.Visible = false;

            //Et on affiche le contenu souhaité
            GroupBoxSessionConsulter.Visible = true;
            GroupBoxSessionAjouter.Visible = false;
            GroupBoxSessionModifier.Visible = false;
        }

        private void MenuGererSession_Ajouter_MouseClick(object sender, MouseEventArgs e)
        {
             //On cache tout les types de contenu sauf celui qui nous interesse
            GroupBoxDispoContenu.Visible = false;
            GroupBoxSessionContenu.Visible = true;
            GroupBoxPlanningContenu.Visible = false;
            GroupBoxRequeteContenu.Visible = false;

            //Et on affiche le contenu souhaité
            GroupBoxSessionConsulter.Visible = false;
            GroupBoxSessionAjouter.Visible = true;
            GroupBoxSessionModifier.Visible = false;
        }

        private void MenuGererSession_Modifier_MouseClick(object sender, MouseEventArgs e)
        {
             //On cache tout les types de contenu sauf celui qui nous interesse
            GroupBoxDispoContenu.Visible = false;
            GroupBoxSessionContenu.Visible = true;
            GroupBoxPlanningContenu.Visible = false;
            GroupBoxRequeteContenu.Visible = false;

            //Et on affiche le contenu souhaité
            GroupBoxSessionConsulter.Visible = false;
            GroupBoxSessionAjouter.Visible = false;
            GroupBoxSessionModifier.Visible = true;
        }

        /**************************************************************************************************
      *   Commentaire : Florian Cavallo
      *   Groupe de methodes : Sous-Menus (Menu de gauche)
      *   Utilisateur : Administration
      *   Catégorie : Gestion de Planning
      **************************************************************************************************/

        private void MenuGererPlanning_Consulter_MouseClick(object sender, MouseEventArgs e)
        {
            //On cache tout les types de contenu sauf celui qui nous interesse
            GroupBoxDispoContenu.Visible = false;
            GroupBoxSessionContenu.Visible = false;
            GroupBoxPlanningContenu.Visible = true;
            GroupBoxRequeteContenu.Visible = false;

            //Et on affiche le contenu souhaité
            GroupBoxPlanningConsulter.Visible = true;
            GroupBoxPlanningAjouter.Visible = false;
            GroupBoxPlanningModifier.Visible = false;
        }

        private void MenuGererPlanning_Ajouter_MouseClick(object sender, MouseEventArgs e)
        {
            //On cache tout les types de contenu sauf celui qui nous interesse
            GroupBoxDispoContenu.Visible = false;
            GroupBoxSessionContenu.Visible = false;
            GroupBoxPlanningContenu.Visible = true;
            GroupBoxRequeteContenu.Visible = false;

            //Et on affiche le contenu souhaité
            GroupBoxPlanningConsulter.Visible = false;
            GroupBoxPlanningAjouter.Visible = true;
            GroupBoxPlanningModifier.Visible = false;
        }

        private void MenuGererPlanning_Modifier_MouseClick(object sender, MouseEventArgs e)
        {
            //On cache tout les types de contenu sauf celui qui nous interesse
            GroupBoxDispoContenu.Visible = false;
            GroupBoxSessionContenu.Visible = false;
            GroupBoxPlanningContenu.Visible = true;
            GroupBoxRequeteContenu.Visible = false;

            //Et on affiche le contenu souhaité
            GroupBoxPlanningConsulter.Visible = false;
            GroupBoxPlanningAjouter.Visible = false;
            GroupBoxPlanningModifier.Visible = true;
        }

        /**************************************************************************************************
         *   Commentaire : Florian Cavallo
         *   Groupe de methodes : Sous-Menus (Menu de gauche)
         *   Utilisateur : Administration
         *   Catégorie : Gestion de Requete
         **************************************************************************************************/

        private void MenuConsulterRequeteEleve_MouseClick(object sender, MouseEventArgs e)
        {
            //On cache tout les types de contenu sauf celui qui nous interesse
            GroupBoxDispoContenu.Visible = false;
            GroupBoxSessionContenu.Visible = false;
            GroupBoxPlanningContenu.Visible = false;
            GroupBoxRequeteContenu.Visible = true;

            //Et on affiche le contenu souhaité
            GroupBoxRequeteEleve.Visible = true;
            GroupBoxRequeteFormateur.Visible = false;
            GroupBoxRequeteResume.Visible = false;
        }

        private void MenuConsulterRequeteFormateur_MouseClick(object sender, MouseEventArgs e)
        {
             //On cache tout les types de contenu sauf celui qui nous interesse
            GroupBoxDispoContenu.Visible = false;
            GroupBoxSessionContenu.Visible = false;
            GroupBoxPlanningContenu.Visible = false;
            GroupBoxRequeteContenu.Visible = true;

            //Et on affiche le contenu souhaité
            GroupBoxRequeteEleve.Visible = false;
            GroupBoxRequeteFormateur.Visible = true;
            GroupBoxRequeteResume.Visible = false;
        }

        private void MenuConsulterRequeteResume_MouseClick(object sender, MouseEventArgs e)
        {
             //On cache tout les types de contenu sauf celui qui nous interesse
            GroupBoxDispoContenu.Visible = false;
            GroupBoxSessionContenu.Visible = false;
            GroupBoxPlanningContenu.Visible = false;
            GroupBoxRequeteContenu.Visible = true;

            //Et on affiche le contenu souhaité
            GroupBoxRequeteEleve.Visible = false;
            GroupBoxRequeteFormateur.Visible = false;
            GroupBoxRequeteResume.Visible = true;
        }

        /**************************************************************************************************
        *   Commentaire : Jeremy Chu
        *   Groupe de methodes : Categorie (Contenu dans le ribbon bar)  
        *   Utilisateur : Agence
        **************************************************************************************************/

        private void TabCategorieEleves_Click(object sender, EventArgs e)
        {
            //Gestion du splitPanel 3 (Le menu de la gauche)

            GroupBox_Eleve.Visible = true;
            GroupBox_Examen.Visible = false;

            //Gestion du splitPanel 4 (le contenu)
            MenuModifierEleve_MouseClick(null, null);
        }

        private void TabCategorieExamens_Click(object sender, EventArgs e)
        {
            //Gestion du splitPanel 3 (Le menu de la gauche)

            GroupBox_Eleve.Visible = false;
            GroupBox_Examen.Visible = true;

            //Gestion du splitPanel 4 (le contenu)
            MenuGestionScoresExamen_MouseClick(null, null);
        }

        /**************************************************************************************************
        *   Commentaire : Jérémy Chu
        *   Groupe de methodes : Gestion des Sous-Menus
        **************************************************************************************************/

        private void MenuEleve_SelectedPageChanged(object sender, EventArgs e)
        {
            switch (this.Menu_Eleve.Pages.IndexOf(this.Menu_Eleve.SelectedPage))
            {
                case 0: MenuConsulterFicheEleve_MouseClick(null, null);
                    break;

                case 1: MenuAjouterEleve_MouseClick(null, null);
                    break;

                case 2: MenuImporterCompteEleve_MouseClick(null, null);
                    break;

                case 3: MenuModifierEleve_MouseClick(null, null);
                    break;
            }
        }

        private void MenuExamen_SelectedPageChanged(object sender, EventArgs e)
        {
            switch (this.Menu_Examen.Pages.IndexOf(this.Menu_Examen.SelectedPage))
            {
                case 0: MenuInscriptionExamen_MouseClick(null, null);
                    break;

                case 1: MenuGestionScoresExamen_MouseClick(null, null);
                    break;

            }
        }

        /**************************************************************************************************
         *   Commentaire : Jeremy Chu
         *   Groupe de methodes : Sous-Menus (Menu de gauche)
         *   Utilisateur : Agence
         *   Catégorie : Gestion élèves
         **************************************************************************************************/

        private void MenuConsulterFicheEleve_MouseClick(object sender, MouseEventArgs e)
        {
            //On cache tous les tous les types de contenus sauf celui qui nous interesse
            GroupBox_ExamenContenu.Visible = false;
            GroupBox_EleveContenu.Visible = true;

            //On affiche le contenu souhaité
            GroupBox_EleveAjouter.Visible = false;
            GroupBox_EleveConsulterFiche.Visible = true;
            GroupBox_EleveImporter.Visible = false;
            GroupBox_EleveModifier.Visible = false;

        }

        private void MenuAjouterEleve_MouseClick(object sender, MouseEventArgs e)
        {
            //On cache tous les tous les types de contenus sauf celui qui nous interesse
            GroupBox_ExamenContenu.Visible = false;
            GroupBox_EleveContenu.Visible = true;

            //On affiche le contenu souhaité
            GroupBox_EleveAjouter.Visible = true;
            GroupBox_EleveConsulterFiche.Visible = false;
            GroupBox_EleveImporter.Visible = false;
            GroupBox_EleveModifier.Visible = false;

        }

        private void MenuModifierEleve_MouseClick(object sender, MouseEventArgs e)
        {
            //On cache tous les tous les types de contenus sauf celui qui nous interesse
            GroupBox_ExamenContenu.Visible = false;
            GroupBox_EleveContenu.Visible = true;

            //On affiche le contenu souhaité
            GroupBox_EleveAjouter.Visible = false;
            GroupBox_EleveConsulterFiche.Visible = false;
            GroupBox_EleveImporter.Visible = false;
            GroupBox_EleveModifier.Visible = true;

        }

        private void MenuImporterCompteEleve_MouseClick(object sender, MouseEventArgs e)
        {
            //On cache tous les tous les types de contenus sauf celui qui nous interesse
            GroupBox_ExamenContenu.Visible = false;
            GroupBox_EleveContenu.Visible = true;

            //On affiche le contenu souhaité
            GroupBox_EleveAjouter.Visible = false;
            GroupBox_EleveConsulterFiche.Visible = false;
            GroupBox_EleveImporter.Visible = true;
            GroupBox_EleveModifier.Visible = false;

        }

        /**************************************************************************************************
         *   Commentaire : Jeremy Chu
         *   Groupe de methodes : Sous-Menus (Menu de gauche)
         *   Utilisateur : Agence
         *   Catégorie : Gestion examens
         **************************************************************************************************/

        private void MenuInscriptionExamen_MouseClick(object sender, MouseEventArgs e)
        {
            //On cache tous les tous les types de contenus sauf celui qui nous interesse
            GroupBox_ExamenContenu.Visible = true;
            GroupBox_EleveContenu.Visible = false;

            //On affiche le contenu souhaité
            GroupBox_ExamenInscription.Visible = true;
            GroupBox_ExamenGestionScore.Visible = false;

        }

        private void MenuGestionScoresExamen_MouseClick(object sender, MouseEventArgs e)
        {
            //On cache tous les tous les types de contenus sauf celui qui nous interesse
            GroupBox_ExamenContenu.Visible = true;
            GroupBox_EleveContenu.Visible = false;

            //On affiche le contenu souhaité
            GroupBox_ExamenInscription.Visible = false;
            GroupBox_ExamenGestionScore.Visible = true;

        }

        /**************************************************************************************************
         *   Commentaire : Florian Cavallo
         *   Groupe de methodes : Categorie (Contenu dans le ribbon bar)        
         *   Utilisateur : Moniteur
         **************************************************************************************************/
        private void GroupBoxNotationContenu_Click(object sender, EventArgs e)
        {
            //Gestion du splitPanel  (Le menu de la gauche)
            GroupBoxNotationContenu.Visible = true;
            //Gestion du splitPanel  (le contenu)
            MenuNotationEleve_Click(null, null);
        }

        /**************************************************************************************************
       *   Commentaire : Florian Cavallo
       *   Groupe de methodes : Gestion des Sous-Menus
       **************************************************************************************************/

        private void MenuNotation_SelectedPageChanged(object sender, EventArgs e)
        {
            switch (this.MenuNotation.Pages.IndexOf(this.MenuNotation.SelectedPage))
            {
               // case 0: MenuRechercheEleve_Click(null, null);
                 //   break;

                case 0: MenuNotationEleve_Click(null, null);
                    break;

            }
        }

        /**************************************************************************************************
        *   Commentaire : Florian Cavallo
        *   Groupe de methodes : Sous-Menus (Menu de gauche)
        *   Utilisateur : Moniteur
        *   Catégorie : Notation
        **************************************************************************************************/

        private void MenuRechercheEleve_Click(object sender, EventArgs e)
        {
            //On cache tous les tous les types de contenus sauf celui qui nous interesse
            GroupBoxRechercheEleveContenu.Visible = true;
            GroupBoxNotationContenu.Visible = false;

        }

        private void MenuNotationEleve_Click(object sender, EventArgs e)
        {
            //On cache tous les tous les types de contenus sauf celui qui nous interesse
            GroupBoxRechercheEleveContenu.Visible = false;
            GroupBoxNotationContenu.Visible = true;
        }

        private void Menu_EleveConsulterFiche_Paint(object sender, PaintEventArgs e)
        {

        }

        private void RB_NotationSuiv_Click(object sender, EventArgs e)
        {
           // PageView.SelectedPage = PageView.Pages.;
        }

        private void radLabel115_Click(object sender, EventArgs e)
        {
            if (radGroupBox32.Visible == true)
            {
                radGroupBox32.Visible = false;
            }
            else
            {
                radGroupBox32.Visible = true;
            }
        }

        private void radListControl3_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
        {
            if (radListControl3.SelectedItem != null)
            {
                radButton19.Visible = true;
            }
            else
            {
                radButton19.Visible = false;
            }
        }

        private void radButton19_Click(object sender, EventArgs e)
        {
            if (radGroupBox32.Visible == true)
            {
                radGroupBox32.Visible = false;
            }
            else
            {
                radGroupBox32.Visible = true;
            }
        }
#endregion

#region Utilisation des web services
        /**************************************************************************************************
        *   Commentaire : Florian Cavallo
        *   Groupe de methodes : Gestion des DropDownList (listes déroulantes)
        **************************************************************************************************/
        private void radDropDownList1_Click(object sender, EventArgs e)
        {
            radDropDownList1.Items.Clear();
            foreach (string item in ServiceWeb.RecupererToutLesEleves())
            {
                radDropDownList1.Items.Add(item);
            }

        }
        private void radDropDownList5_Click(object sender, EventArgs e)
        {
            radDropDownList5.Items.Clear();
            foreach (string item in ServiceWeb.RecupererToutLesEleves())
            {
                radDropDownList5.Items.Add(item);
            }

        }

        private void radDateTimePicker2_ValueChanged(object sender, EventArgs e)
        {
            radListControl1.Items.Clear();
            foreach (string item in ServiceWeb.ListeEleveDeLaJournee(radDateTimePicker2.Value))
            {
                radListControl1.Items.Add(item);
            }

        }


        private void RB_Recherche_Click(object sender, EventArgs e)
        {
            List<string> resultatRecherche = new List<string>();
            if (!String.IsNullOrEmpty(RTB_NomRecherche.Text) && !String.IsNullOrEmpty(RTB_RecherchePrenom.Text))
            {
                resultatRecherche = ServiceWeb.RecupererEleveParPrenomEtNom(RTB_RecherchePrenom.Text,RTB_RecherchePrenom.Text);// Appel methode de recherche par nom et par prénom
            }
            else if (!String.IsNullOrEmpty(RTB_NomRecherche.Text) && String.IsNullOrEmpty(RTB_RecherchePrenom.Text))
            {
                resultatRecherche = ServiceWeb.RecupererEleveParNom(RTB_NomRecherche.Text);// Appel methode de recherche par nom 

            }
            else if (String.IsNullOrEmpty(RTB_NomRecherche.Text) && !String.IsNullOrEmpty(RTB_RecherchePrenom.Text))
            {
                resultatRecherche = ServiceWeb.RecupererEleveParNom(RTB_RecherchePrenom.Text);// Appel methode de recherche par prénom
            }
            else if (String.IsNullOrEmpty(RTB_NomRecherche.Text) && String.IsNullOrEmpty(RTB_RecherchePrenom.Text))
            {
                return;
            }


            foreach (string result in resultatRecherche)
            {
                RLC_resultatRecherche.Items.Add(result);
            }
            
        }
#endregion

        private void radDropDownList8_Click(object sender, EventArgs e)
        {
            radDropDownList8.Items.Clear();
            foreach (string item in ServiceWeb.RecupererToutLesEleves())
            {
                radDropDownList8.Items.Add(item);
            }
        }

        private void RDD_ListePermis_Click(object sender, EventArgs e)
        {
            RDD_ListePermis.Items.Clear();
            foreach (string item in ServiceWeb.recupererTypesPermis())
            {
                RDD_ListePermis.Items.Add(item);
            }
        }

        private void RDD_ListePermis_SelectedIndexChanging(object sender, Telerik.WinControls.UI.Data.PositionChangingCancelEventArgs e)
        {
            switch (RDD_ListePermis.SelectedItem.Value.ToString())
            {
                case "PermisA": 
                    GB_NotationPermisA.Visible = true;
                    GB_NotationPermisB.Visible = false;
                    GB_NotationPermisEB.Visible = false;
                    break;
                case "PermisB":
                    GB_NotationPermisA.Visible = false;
                    GB_NotationPermisB.Visible = true;
                    GB_NotationPermisEB.Visible = false;
                    break;
                case "PermisEB":
                    GB_NotationPermisA.Visible = false;
                    GB_NotationPermisB.Visible = false;
                    GB_NotationPermisEB.Visible = true;
                    break;
            }
        }

        private void RB_ValiderNotation_Click(object sender, EventArgs e)
        {

            List<List<Telerik.WinControls.UI.RadRadioButton>> Note = new List<List<Telerik.WinControls.UI.RadRadioButton>>();
            List<Telerik.WinControls.UI.RadRadioButton> Note1 = new List<Telerik.WinControls.UI.RadRadioButton>();
            List<Telerik.WinControls.UI.RadRadioButton> Note2 = new List<Telerik.WinControls.UI.RadRadioButton>();
            List<Telerik.WinControls.UI.RadRadioButton> Note3 = new List<Telerik.WinControls.UI.RadRadioButton>();
            List<Telerik.WinControls.UI.RadRadioButton> Note4 = new List<Telerik.WinControls.UI.RadRadioButton>();

            Note.Add(Note1); Note.Add(Note2); Note.Add(Note3); Note.Add(Note4);
            Note1.Add(RB_Note_A_Q1); Note1.Add(RB_Note_B_Q1); Note1.Add(RB_Note_C_Q1); Note1.Add(RB_Note_D_Q1);
            Note2.Add(RB_Note_A_Q2); Note2.Add(RB_Note_B_Q2); Note2.Add(RB_Note_C_Q2); Note2.Add(RB_Note_D_Q2);
            Note3.Add(RB_Note_A_Q3); Note3.Add(RB_Note_B_Q3); Note3.Add(RB_Note_C_Q3); Note3.Add(RB_Note_D_Q3);
            Note4.Add(RB_Note_A_Q4); Note4.Add(RB_Note_B_Q4); Note4.Add(RB_Note_C_Q4); Note4.Add(RB_Note_D_Q4);


            ServiceWeb.NoterEleve(notation.calculerScore(Note),CurrentEleveID );
        }



        private void radScheduler2_Click(object sender, EventArgs e)
        {
            List<Telerik.WinControls.UI.RadScheduler> ListCalendriers = new List<RadScheduler>();
            ListCalendriers.Add(schedulerDispoFormateur);
            ListCalendriers.Add(schedulerDispoLieux);
            ListCalendriers.Add(schedulerDispoVehicules);
            RemplirSchedulers(ListCalendriers);
            DateTime baseDate = DateTime.Today;

            AppointmentBackground[] backgrounds = new AppointmentBackground[] { AppointmentBackground.Business, AppointmentBackground.MustAttend, AppointmentBackground.Personal };


            this.schedulerDispoFormateur.Appointments.BeginUpdate();
            Appointment appointment;
            appointment = new Appointment(baseDate.AddHours(11.0), baseDate.AddHours(12.0), "Appointment Subject");
            this.schedulerDispoFormateur.Appointments.Add(appointment);
            this.schedulerDispoFormateur.Appointments.EndUpdate();

        }

        private void CRM_Load(object sender, EventArgs e)
        {
            // TODO: cette ligne de code charge les données dans la table 'schedulerBDDDataSet1.Resources'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
            this.resourcesTableAdapter.Fill(this.schedulerBDDDataSet1.Resources);
            // TODO: cette ligne de code charge les données dans la table 'schedulerBDDDataSet1.Appointments'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
            this.appointmentsTableAdapter.Fill(this.schedulerBDDDataSet1.Appointments);
        }

        void RemplirSchedulers(List<Telerik.WinControls.UI.RadScheduler> ListCalendriers)
        {
            List<string> SessionsFormations = new List<string>(ServiceWeb.RecupererListeFormationsFormateur());

            foreach (string s in SessionsFormations)
            {
                SqlCeConnection conn;
                SqlCeCommand command, com;

                string[] split = s.Split(',');

                conn = new SqlCeConnection("DataSource =" + Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\schedulerBDD.sdf");
                string datestart = DateTime.Parse(split[1]).Year.ToString() +  "/" + DateTime.Parse(split[1]).Day.ToString() + "/" + DateTime.Parse(split[1]).Month.ToString()  ;
                string datestop =  DateTime.Parse(split[3]).Year.ToString()  + "/" + DateTime.Parse(split[3]).Day.ToString() + "/" + DateTime.Parse(split[3]).Month.ToString() ;

               // DateTime datesta = new DateTime(Int32.Parse(DateTime.Parse(split[1]).Year.ToString()), Int32.Parse(DateTime.Parse(split[1]).Month.ToString()), Int32.Parse(DateTime.Parse(split[1]).Day.ToString()), 20, 0, 0);
               // DateTime datesto = new DateTime(Int32.Parse(DateTime.Parse(split[3]).Year.ToString()), Int32.Parse(DateTime.Parse(split[3]).Month.ToString()), Int32.Parse(DateTime.Parse(split[3]).Day.ToString()), 20, 0, 0);
                /*datesta = new DateTime(2011, 06, 17, 15, 10, 56, 999);
                datesto = new DateTime(2011, 06, 17, 15, 11, 0, 909);*/
               // datesta = DateTime.Now;
              //  datesto = DateTime.Now;
                conn.Open(); 

                // Objet Command
                com = new SqlCeCommand("select count(ID) from Appointments", conn);
                int o = (int)com.ExecuteScalar();

                command = new SqlCeCommand("Insert into Appointments (Summary,Start,Description,BackgroundId,[End],TypeAppointment) VALUES (  ' " + split[0] + "', '" + datestart + "', '" + split[2] + "', 6, '" + datestop + "', '" + split[4] + "')", conn);

                
                // Execution*/

                command.ExecuteNonQuery();


                //SqlCeDataReader reader = command.ExecuteReader();
                // bdd table appointments = webservices.getsessions
                // 
                conn.Close();
            }
        }

 

        /**************************************************************************************************
        *   Commentaire : Jérémy Chu
        *   Groupe de methodes : Gestion des DropDownList (listes déroulantes)
        **************************************************************************************************/

        private void BoutonAjouterEleve_Click(object sender, EventArgs e)
        {
            ServiceWeb.AjouterEleve(textBox1.Text, textBox2.Text, textBox8.Text, textBox9.Text, textBox3.Text, textBox5.Text, Int32.Parse(textBox4.Text), textBox6.Text, Int32.Parse(textBox7.Text), Int32.Parse(textBox10.Text), radCheckBox3.Checked);
            textBox1.Text = "";
            textBox2.Text = "";
            textBox3.Text = "";
            textBox4.Text = "";
            textBox5.Text = "";
            textBox6.Text = "";
            textBox7.Text = "";
            textBox8.Text = "";
            textBox9.Text = "";
            textBox10.Text = "";
        }

        private void radButton6_Click(object sender, EventArgs e)
        {
            GestionEleveservice.Eleve eleve = ServiceWeb.RecupererEleveParId(Int32.Parse(radLabel79.Text));

            eleve.Nom = LabelNom.Text;
            eleve.Prenom = LabelPrenom.Text;
            eleve.Login = LabelLogin.Text;
            eleve.MotDePasse = LabelPassword.Text;
            eleve.Adresse = LabelAdresse.Text;
            eleve.CodePostal = Int32.Parse(LabelCodePostal.Text);
            eleve.Ville = LabelVille.Text;
            eleve.Email = LabelMail.Text;
            eleve.Telephone = Int32.Parse(LabelTelephone.Text);
            eleve.FormateurID = Int32.Parse(radLabel78.Text);
            eleve.TitulaireCode = radCheckBox4.Checked;
            
            ServiceWeb.UpdaterEleve(eleve);

            LabelAdresse.Text = "";
            LabelCodePostal.Text = "";
            LabelMail.Text = "";
            LabelFormateur.Text = "";
            LabelLogin.Text = "";
            LabelPassword.Text = "";
            LabelNom.Text = "";
            LabelAdresse.Text = "";
            LabelVille.Text = "";
            

        }

        private void radDropDownList6_Click(object sender, EventArgs e)
        {
            radDropDownList6.Items.Clear();
            foreach (string item in ServiceWeb.RecupererToutLesEleves())
            {
                radDropDownList6.Items.Add(item);
            }
        }

        private void radDropDownList2_Click(object sender, EventArgs e)
        {
            radDropDownList2.Items.Clear();
            foreach (string item in ServiceWeb.RecupererToutLesEleves())
            {
                radDropDownList2.Items.Add(item);
            }
        }

        private void radDropDownList6_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
        {
            if (radDropDownList6.SelectedIndex > 0)
            {
                string value = radDropDownList6.SelectedItem.Text.ToString();
                string[] split = value.Split(' ');

                List<string> ListeInformations = ServiceWeb.RecupererEleveParPrenomEtNom(split[1], split[0]);
                radLabel35.Text = ListeInformations[0];
                radLabel36.Text = ListeInformations[1];
                radLabel37.Text = ListeInformations[2];
                radLabel38.Text = ListeInformations[3];
                radLabel39.Text = ListeInformations[4];
                radLabel40.Text = ListeInformations[5];
                radLabel41.Text = ListeInformations[6];
                radLabel42.Text = ListeInformations[11];


                if (ListeInformations[7] == "True")
                {
                    radCheckBox2.Checked = true;
                }

                else
                {
                    radCheckBox2.Checked = false;
                }
            }
        }

        private void radDropDownList2_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
        {
            if (radDropDownList2.SelectedIndex > 0)
            {
                string value = radDropDownList2.SelectedItem.Text.ToString();
                string[] split = value.Split(' ');

                List<string> ListeInformations = ServiceWeb.RecupererEleveParPrenomEtNom(split[1], split[0]);
                LabelNom.Text = ListeInformations[0];
                LabelPrenom.Text = ListeInformations[1];
                LabelAdresse.Text = ListeInformations[2];
                LabelCodePostal.Text = ListeInformations[3];
                LabelVille.Text = ListeInformations[4];
                LabelMail.Text = ListeInformations[5];
                LabelTelephone.Text = ListeInformations[6];
                LabelPassword.Text = ListeInformations[10];
                LabelLogin.Text = ListeInformations[9];
                radLabel78.Text = ListeInformations[8];
                radLabel79.Text = ListeInformations[11];

                if (ListeInformations[7] == "True")
                {
                    radCheckBox4.Checked = true;
                }

                else
                {
                    radCheckBox2.Checked = false;
                }
            }
        }


        private void RB_ConsulterSession_Click(object sender, EventArgs e)
        {
            List<string> listSession = ServiceWeb.RecupererToutesLesSessionsFormation(radDateTimePicker6.Value);
            foreach (string session in listSession)
            {
                RLC_ConsulterSessionFormation.Items.Add(session);
            }
             listSession = ServiceWeb.RecupererToutesLesSessionsConduite(radDateTimePicker6.Value);
            foreach (string session in listSession)
            {
                RLC_ConsulterSessionConduite.Items.Add(session);
            }
        }


        private void radButton15_Click(object sender, EventArgs e)
        {
            List<string> ListeInformations = new List<string>();

            if (!String.IsNullOrEmpty(radTextBox15.Text) && !String.IsNullOrEmpty(radTextBox14.Text))
            {
                ListeInformations = ServiceWeb.RecupererEleveParPrenomEtNom(radTextBox14.Text, radTextBox15.Text);// Appel methode de recherche par nom et par prénom
            }
            else if (!String.IsNullOrEmpty(radTextBox15.Text) && String.IsNullOrEmpty(radTextBox14.Text))
            {
                ListeInformations = ServiceWeb.RecupererEleveParNom(radTextBox15.Text);// Appel methode de recherche par nom 

            }
            else if (!String.IsNullOrEmpty(radTextBox14.Text) && String.IsNullOrEmpty(radTextBox15.Text))
            {
                ListeInformations = ServiceWeb.RecupererEleveParPrenom(radTextBox14.Text);// Appel methode de recherche par prénom
            }
            else if (String.IsNullOrEmpty(radTextBox15.Text) && String.IsNullOrEmpty(radTextBox14.Text))
            {
                return;
            }

            radLabel35.Text = ListeInformations[0];
            radLabel36.Text = ListeInformations[1];
            radLabel37.Text = ListeInformations[2];
            radLabel38.Text = ListeInformations[3];
            radLabel39.Text = ListeInformations[4];
            radLabel40.Text = ListeInformations[5];
            radLabel41.Text = ListeInformations[6];

            if (ListeInformations[7] == "True")
            {
                radCheckBox2.Checked = true;
            }

            else
            {
                radCheckBox2.Checked = false;
            }


            foreach (string result in ListeInformations)
            {
                RLC_resultatRecherche.Items.Add(result);
            }
        }

        private void RB_AjouterSession_Click(object sender, EventArgs e)
        {

        }
        private void RDDL_TypeSessionAjout_Click(object sender, EventArgs e)
        {

        }

        private void RDDL_AjoutSessionFormateurList_Click(object sender, EventArgs e)
        {
            foreach (string formateur in ServiceWeb.RecupererListeFormationsFormateur())
            {
                string[] split = formateur.Split(' ');
                RDDL_AjoutSessionFormateurList.Items.Add(split[4] + " " + split[5]);
            }
        }

        private void RDDL_AjoutSessionEleveList_Click(object sender, EventArgs e)
        {
            foreach (string eleve in ServiceWeb.RecupererToutLesEleves())
            {
                string[] split = eleve.Split(' ');
                RDDL_AjoutSessionEleveList.Items.Add(split[0] + " "+ split[1]);
            }
        }

        private void RDDL_AjoutSessionVehiculeList_Click(object sender, EventArgs e)
        {
            
            foreach (string vehicule in ServiceWeb.RecupererToutLesVehicules())
            {
                string[] split = vehicule.Split(' ');
                RDDL_AjoutSessionVehiculeList.Items.Add(split[0] + " " + split[1]);
            }
        }





        

    }
}
